﻿using Entity.Context;
using Entity.Models;
using System;

namespace BLL.Utility
{
    public sealed class GeraDb : AbstractClass
    {

        #region -- GeraDbContext --
        public void GeraDbDadosContext()
        {
            try
            {
                using (var ctx = new Context())
                {
                    if (ctx.Database.Exists())
                    {
                        InserirDadosPadrão();
                    }
                }
            }
            catch (Exception ex)
            {
                throw new Exception("GeraDb.GeraDbContext :: " + ex.Message, ex);
            }
        }
        #endregion

        #region -- InserirDadosPadrão --
        public static void InserirDadosPadrão()
        {
            try
            {
                //Dados Login Padrão
                using (var ctx = new Context())
                {

                    #region -- Dados Usuario --
                    ctx.Usuario.Add(new Usuario
                    {
                        NomeUsuario = "Admin",
                        SenhaUsuario = "7C87541FD3F3EF5016E12D411900C87A6046A8E8"
                    });
                    #endregion

                    #region -- Dados Banco --
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 246,
                            Descricao = "Banco ABC Brasil S.A"
                        });

                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 356,
                            Descricao = "Banco ABN AMRO Real S.A"
                        });

                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 025,
                            Descricao = "Banco Alfa S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 641,
                            Descricao = "Banco Alvorada S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 029,
                            Descricao = "Banco Banerj S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 038,
                            Descricao = "Banco Banestado S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 740,
                            Descricao = "Banco Barclays S.A"
                        });
                    ctx.Banco.Add(new Banco
                    {
                        CodBanco = 107,
                        Descricao = "Banco BBM S.A"
                    });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 031,
                            Descricao = "Banco Beg S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 036,
                            Descricao = "Banco Bem S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 096,
                            Descricao = "Banco BM&F de Serviços de Liquidação e Custódia S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 394,
                            Descricao = "Banco BMC S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 318,
                            Descricao = "Banco BMG S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 752,
                            Descricao = "Banco BNP Paribas Brasil S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 248,
                            Descricao = "Banco Boavista Interatlântico S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 237,
                            Descricao = "Banco Bradesco S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 225,
                            Descricao = "Banco Brascan S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 263,
                            Descricao = "Banco Cacique S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 222,
                            Descricao = "Banco Calyon Brasil S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 040,
                            Descricao = "Banco Cargill S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 745,
                            Descricao = "Banco Citibank S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 215,
                            Descricao = "Banco Comercial e de Investimento Sudameris S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 756,
                            Descricao = "Banco Cooperativo do Brasil S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 748,
                            Descricao = "Banco Cooperativo Sicredi S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 505,
                            Descricao = "Banco Credit Suisse (Brasil) S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 229,
                            Descricao = "Banco Cruzeiro do Sul S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 003,
                            Descricao = "Banco da Amazônia S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 707,
                            Descricao = "Banco Daycoval S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 024,
                            Descricao = "Banco de Pernambuco S.A. – BANDEPE"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 456,
                            Descricao = "Banco de Tokyo-Mitsubishi UFJ Brasil S.A."
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 214,
                            Descricao = "Banco Dibens S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 001,
                            Descricao = "Banco do Brasil S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 027,
                            Descricao = "Banco do Estado de Santa Catarina S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 047,
                            Descricao = "Banco do Estado de Sergipe S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 037,
                            Descricao = "Banco do Estado do Pará S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 041,
                            Descricao = "Banco do Estado do Rio Grande do Sul S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 004,
                            Descricao = "Banco do Nordeste do Brasil S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 265,
                            Descricao = "Banco Fator S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 224,
                            Descricao = "Banco Fibra S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 175,
                            Descricao = "Banco Finasa S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 252,
                            Descricao = "Banco Fininvest S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 233,
                            Descricao = "Banco GE Capital S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 734,
                            Descricao = "Banco Gerdau S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 612,
                            Descricao = "Banco Guanabara S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 063,
                            Descricao = "Banco Ibi S.A. Banco Múltiplo"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 064,
                            Descricao = "Banco Industrial do Brasil S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 320,
                            Descricao = "Banco Industrial e Comercial S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 653,
                            Descricao = "Banco Indusval S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 630,
                            Descricao = "Banco Intercap S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 249,
                            Descricao = "Banco Investcred Unibanco S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 184 - 8,
                            Descricao = "Banco Itaú BBA S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 652,
                            Descricao = "Banco Itaú Holding Financeira S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 341,
                            Descricao = "Banco Itaú S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 479,
                            Descricao = "Banco ItaúBank S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 376,
                            Descricao = "Banco J. P. Morgan S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 074,
                            Descricao = "Banco J. Safra S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 600,
                            Descricao = "Banco Luso Brasileiro S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 392,
                            Descricao = "Banco Mercantil de São Paulo S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 389,
                            Descricao = "Banco Mercantil do Brasil S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 755,
                            Descricao = "Banco Merrill Lynch de Investimentos S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 151,
                            Descricao = "Banco Nossa Caixa S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 045,
                            Descricao = "Banco Opportunity S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 623,
                            Descricao = "Banco Panamericano S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 611,
                            Descricao = "Banco Paulista S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 643,
                            Descricao = "Banco Pine S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 638,
                            Descricao = "Banco Prosper S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 747,
                            Descricao = "Banco Rabobank International Brasil S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 633,
                            Descricao = "Banco Rendimento S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 072,
                            Descricao = "Banco Rural Mais S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 453,
                            Descricao = "Banco Rural S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 422,
                            Descricao = "Banco Safra S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 008,
                            Descricao = "Banco Santander Banespa S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 250,
                            Descricao = "Banco Schahin S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 749,
                            Descricao = "Banco Simples S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 366,
                            Descricao = "Banco Société Générale Brasil S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 637,
                            Descricao = "Banco Sofisa S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 347,
                            Descricao = "Banco Sudameris Brasil S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 464,
                            Descricao = "Banco Sumitomo Mitsui Brasileiro S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 634,
                            Descricao = "Banco Triângulo S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 208,
                            Descricao = "Banco UBS Pactual S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 247,
                            Descricao = "Banco UBS S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 116,
                            Descricao = "Banco Único S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 655,
                            Descricao = "Banco Votorantim S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 610,
                            Descricao = "Banco VR S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 370,
                            Descricao = "Banco WestLB do Brasil S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 021,
                            Descricao = "BANESTES S.A. Banco do Estado do Espírito Santo"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 719,
                            Descricao = "Banif-Banco Internacional do Funchal (Brasil)S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 204,
                            Descricao = "Bankpar Banco Multiplo S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 073 - 6,
                            Descricao = "BB Banco Popular do Brasil S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 070,
                            Descricao = "BPN Brasil Banco Mútiplo S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 104,
                            Descricao = "Caixa Econômica Federal"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 477,
                            Descricao = "Citibank N.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 487,
                            Descricao = "Deutsche Bank S.A. – Banco Alemão"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 751,
                            Descricao = "Dresdner Bank Brasil S.A. – Banco Múltiplo"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 210,
                            Descricao = "Dresdner Bank Lateinamerika Aktiengesellschaft"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 062,
                            Descricao = "Hipercard Banco Múltiplo S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 399,
                            Descricao = "HSBC Bank Brasil S.A. – Banco Múltiplo"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 492,
                            Descricao = "ING Bank N.V"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 488,
                            Descricao = "JPMorgan Chase Bank"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 065,
                            Descricao = "Lemon Bank Banco Múltiplo S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 409,
                            Descricao = "UNIBANCO – União de Bancos Brasileiros S.A"
                        });
                    ctx.Banco.Add(new Banco
                        {
                            CodBanco = 230,
                            Descricao = "Unicard Banco Múltiplo S.A"
                        });
                    #endregion

                    ctx.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                throw new Exception("GeraDb.InserirDadosPadrão :: " + ex.Message, ex);
            }
        }
        #endregion

    }
}
